﻿/*
==============================================================================
//  角色权限管理 的页面控制层代码。
==============================================================================
*/
(function ($) {

    if (!window.platform) { window.platform = new Object(); }
    if (!window.platform.RoleRightManage) { window.platform.RoleRightManage = new Object(); }

    window.platform.RoleRightManage.initPage = function (roleid, rolename) {

        var _bindToolBarButtonEvent = function () {
            $("#asave", "#toolbar").bind("click", function () {
                _saveRoleRight(roleid);
            });
            $("#aclear", "#toolbar").bind("click", function () {
                _clearRoleRight(roleid, rolename);
            });
        };

        _bindToolBarButtonEvent();
    };

    window.platform.RoleRightManage.checkAll = function (checkbox, menuid) {

        if ($(checkbox).prop('checked')) // 全选 
        {
           
            $("input[name^=" + $(checkbox).attr("name") + "]").each(function () {
        
                $(this).prop('checked', true);
                //$(this).attr("checked", true); //选中模块和权限
            });
        }
        else { // 取消全选
            $("input[name^=" + $(checkbox).attr("name") + "]").each(function () {
                $(this).prop('checked', false);
                //$(this).attr("checked", false); //选中模块和权限
            });
        }

    };

    window.platform.RoleRightManage.checkSingle = function (checkbox) {

        if ($(checkbox).prop('checked')) //选中 
        {
            //判断 是否都选中的，若都选中，则勾选全选按钮
            var checkNum = $("input[name=" + $(checkbox).attr("name") + "][value!=on][type=checkbox]").size();
            var selectedNum = $("input[name=" + $(checkbox).attr("name") + "][value!=on][type=checkbox]:checked").size();
            if (checkNum == selectedNum) {
                $("input[name=" + $(checkbox).attr("name") + "][value=on][type=checkbox]").prop("checked", true); //当前模块全选按钮 选中
            }
            var parentcode = "";
            //向上判断父级模块checkbox
            for (var i = $(checkbox).attr("name").length; i > 2; i -= 2) {
                if (parentcode == "") {
                    parentcode = $(checkbox).attr("name");
                }
                parentcode = parentcode.substring(0, parentcode.length - 2);
                checkNum = $("input[name^=" + parentcode + "][value!=on][type=checkbox]").size();
                selectedNum = $("input[name^=" + parentcode + "][value!=on][type=checkbox]:checked").size();
                if (checkNum == selectedNum) {
                    $("input[name=" + parentcode + "][value=on][type=checkbox]").prop("checked", true); //父级模块全选按钮 选中
                }
            }
        }
        else {//取消选中
            $("input[name=" + $(checkbox).attr("name") + "][value=on][type=checkbox]").prop("checked", false); //当前模块全选按钮 取消选中
            var parentcode = "";
            //向上判断父级模块checkbox
            for (var i = $(checkbox).attr("name").length; i > 2; i -= 2) {
                if (parentcode == "") {
                    parentcode = $(checkbox).attr("name");
                }
                parentcode = parentcode.substring(0, parentcode.length - 2);
                $("input[name=" + parentcode + "][value=on][type=checkbox]").prop("checked", false); //父级模块全选按钮 取消选中
            }
        }

    };

    _saveRoleRight = function (roleid) {

        var data = [];
        //获取被选中的id
        $("input[value!=on][type=checkbox]:checked").each(function () {
            if ($(this).val() != "on") {
                data.push({ SysRoleID: roleid, SysMenuID: $(this).val() });
            }
        });
        if (data.length == 0) {
            $.messager.alert('操作提醒', '请设置权限');

        }
        else {
            $.post("/RoleRight/Save", { roleRight: JSON.stringify(data), roleid: roleid }, function (result) {
                if (result.success) {
                    $.messager.alert('操作提醒', '操作成功');
                } else {
                    $.messager.alert('错误提醒', result.msg, 'error');
                }
            }, "json");
        }
    };

    _clearRoleRight = function (roleid, rolename) {

        $.messager.confirm('确认', "您确定要清空该角色的角色权限吗?", function (r) {
            if (r) {
                $.post("/RoleRight/Clear", { roleid: roleid }, function (result) {
                    if (result.success) {
                        $.messager.alert('操作提醒', '操作成功');
                        //刷新页面
                        //window.location.href = window.location.href;
                        $("#layout-rolefunction").layout("panel", "center").panel('refresh', '/RoleRight/List?roleid=' + roleid + "&rolename=" + escape(rolename));
                    } else {
                        $.messager.alert('错误提醒', result.msg, 'error');
                    }
                }, "json");
            }
        });

    };

})(jQuery);